home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 52
/
Amiga Format AFCD52 (Issue 136, May 2000).iso
/
+system+
/
tools
/
gui
/
visualprefs.lha
/
VisualPrefs
/
DocsItaliano
/
VP-Developer.doc
< prev
next >
Wrap
Text File
|
1997-11-27
|
5KB
|
124 lines
Introduzione:
L'INTERFACCIA DI VISUALPREFS PER SVILUPPATORI
Documento in preparazione
Se sei uno sviluppatore puoi usufruire di certe funzionalità di VisualPrefs.
Anche se non esiste ancora una vera e propria API di VisualPrefs per gli
sviluppatori è già possibile utilizzare le classi BOOPSI che VisualPrefs
aggiunge al sistema.
Lo scopo di queste classi è fornire ai programmatori un modo facile di
ottenere il "look di VisualPrefs" senza dover aspettare che io implementi
in VisualPrefs un patch per i loro applicativi. ;-)
Attualmente c'è solo una classe:
"tbiclass" - la classe di immagini per la titlebar (titlebar image class)
Questa classe fornisce le immagini più comunemente usate per i gadget
aggiunti dagli applicativi alla titlebar delle loro finestre. Esempi di
ciò sono l'onnipresente gadget "iconify" o il gadget "padlock" di DirOpus 5.
Tutti i programmi che usano questa classe riceveranno automaticamente lo
stesso aspetto per le loro immagini per la titlebar se VisualPrefs è in
funzione. Probabilmente è meglio che avere miriadi di versioni diverse
della stessa immagine...
Puoi usare "tbiclass" proprio come "sysiclass"; sono entrambe sottoclassi di
"imageclass". Un'immagine "tbiclass" può essere creata chiamando NewObject()
con i seguenti tag:
SYSIA_DrawInfo - Questo è assolutamente necessario. DEVI passare a "tbiclass"
un puntatore a DrawInfo oppure NewObject() fallirà.
SYSIA_Which - Per specificare quale immagine si vuole; attualmente ci sono
sei tipi di immagine:
POPUPIMAGE - Immagine per il gadget "pop-up" di MUI
MUIIMAGE - Immagine per il gadget "settings" di MUI
SNAPSHOTIMAGE - Immagine per il gadget "snapshot" di MUI
ICONIFYIMAGE - Immagine per il gadget "iconify"
PADLOCKIMAGE - Immagine per il gadget "padlock" di DirOpus
TBFRAMEIMAGE - Immagine vuota (solo contorno) di uso generale
IA_Width, IA_Height - Questi sono riconosciuti solo dal tipo TBFRAMEIMAGE;
gli altri tipi di immagine li ignorano e hanno sempre
la stessa dimensione del gadget di profondità.
SYSIA_ReferenceFont - Questo è riconosciuto solo dal tipo TBFRAMEIMAGE;
gli altri tipi di immagine lo ignorano e hanno sempre
la stessa altezza del gadget di profondità.
Naturalmente se NewObject() fallisce dovresti fornire una immagine di ripiego
creata dal tuo programma. Tuttavia intendo rilasciare presto una classe
"tbiclass" esterna freeware che potrai includere nella distribuzione dei
tuoi applicativi. Questa classe fornirà le immagini necessarie e verrà
sostituita automaticamente da quella di VisualPrefs se sarà presente.
Di conseguenza puoi mantenere molto semplici le tue immagini di ripiego. ;-)
È importante notare che tutte le istanze di immagini "tbiclass" avranno un
valore di -1 in Image->LeftEdge. Questo non dovrebbe venire modificato e
dovresti posizionare i tuoi gadget nella titlebar rispettando ciò. Il motivo
di questo apparentemente strano comportamento è che anche le immagini dei
gadget di Intuition per la titlebar funzionano in questo modo, e dovremmo
cercare di mantenere la massima compatibilità con Intuition.
Inoltre assicurati di modificare se necessario la dimensione del tuo gadget
per adattarla alla dimensione dell'immagine ottenuta.
Un esempio di tutto ciò potrebbe essere:
...
/* Crea l'immagine */
if (!(iconifyimage = NewObject(NULL,"tbiclass",SYSIA_Which,ICONIFYIMAGE,
SYSIA_DrawInfo,dri,
TAG_END)))
{
iconifyimage = builtin_iconifyimage;
}
/* Usa l'immagine */
gad->GadgetRender = iconifyimage;
...
/* Libera l'immagine */
if (iconifyimage != builtin_iconifyimage) DisposeObject(iconifyimage);
...
Questo è tutto. Per ora non ho un vero file include, per cui, se vuoi usare
"tbiclass" nei tuoi applicativi, per favore inserisci le righe seguenti in
cima al tuo codice sorgente. :-]
------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
#define POPUPIMAGE (101)
#define MUIIMAGE (102)
#define SNAPSHOTIMAGE (103)
#define ICONIFYIMAGE (104)
#define PADLOCKIMAGE (105)
#define TBFRAMEIMAGE (106)
------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
C'è già un applicativo che usa "tbiclass", ViNCEd di Thomas Richter.
Spero che anche tu supporterai "tbiclass" e contribuirai in tal modo a
dare finalmente un aspetto consistente a tutti i gadget per la titlebar
usati negli applicativi!
Grazie,
Massimo Tantignone (tanti@intercom.it)